package org.elkastud.fasta;

import org.elkastud.model.DNASequence;

/**
 * Klasa reprezentująca sekwencję odczytaną z pliku fasta
 * Przechowuje informacje o nazwie sekwencji, opis oraz samą sekwencję
 * @author Mariusz
 */
public class FastaSequence {

    /**
     * Nazwa sekwencji
     */
    private String name;

    /**
     * opis sekwencji
     */
    private String description;

    /**
     * sekwencja
     */
    private String sequence;

    /**
     * @param name nazwa sekwencji
     * @param description opis sekwencji
     * @param sequence sekwencja
     */
    public FastaSequence(String name, String description, String sequence) {
        this.name = name;
        this.description = description;
        this.sequence = sequence;
    }

    /**
     * Ustawienie nazwy sekwencji
     * @param name nazwa sekwencji
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return Zwraca nazwę sekwencji
     */
    public String getName() {
        return this.name;
    }

    /**
     * Ustawienie opisu sekwencji
     * @param description opis sekwencji
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * @return Zwraca opis sekwencji
     */
    public String getDescription() {
        return this.description;
    }

    /**
     * ustawienie sekwencji
     * @param sequence sekwencja
     */
    public void setSequence(String sequence) {
        this.sequence = sequence;
    }

    /**
     * @return Zwraca sekwencję
     */
    public String getSequence() {
        return this.sequence;
    }

    /**
     * Konwersja do <code>DNASequence</code>
     * @return
     */
    public DNASequence toDNASequence() {
        DNASequence dna = new DNASequence(this.sequence);
        return dna;
    }

    @Override
    public String toString() {
        return this.name;
    }
}
